//
//  RHRootTableViewController.swift
//  微博新浪
//
//  Created by hezerong on 16/6/5.
//  Copyright © 2016年 Rocky. All rights reserved.
//

import UIKit

import HMRefresh


class RHRootTableViewController: UIViewController {
    
   
    
    //导航栏注册按钮
    var registerBarButtonItem: UIBarButtonItem?
    
    //导航栏登录按钮
    var loginBarButtonItem: UIBarButtonItem?
    
    //访客视图
    var visitorView:RHVisitorView?
    
    //是否登录
    var isLogin:Bool = false

    //tableView
    lazy var tableView: UITableView = UITableView()
    
    //是否上拉刷新
    lazy var isPullUp:Bool = false
    
    //HM下拉刷新
    lazy var refreshControl:HMRefreshControl = HMRefreshControl()
    
    //模拟数据
        
//    lazy var dataArray :[Int] = {
//    
//         //创建空数组
//        var array:[Int] = []
//        
//        for i in (10...50).reverse(){
//
//            array.append(i)
//        }
//        
//        return array
//        
//    }()
    
    //原生刷新懒加载
//    lazy var refreshControl: UIRefreshControl = UIRefreshControl()
    
    //下拉刷新小菊花
    lazy var footRefreshControl: UIActivityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        //调用UI方法
        setUpView()
        

        
               
           }


    //设置tableview的frame
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        
        tableView.frame = view.bounds
    }

   }

//设置UI
extension RHRootTableViewController {
    
    func setUpView(){
    
       setUpTableView()
       setUpRefresh()
        
       //如果没有登录就显示访客视图
        if !isLogin{
        
           setUpVisitorView()
        }
    }
    
    func setUpTableView(){
        
        view.addSubview(tableView)
        
        tableView.delegate = self;
        tableView.dataSource = self;
    }
    
    //设置上下拉刷新
    func setUpRefresh(){
        
        refreshControl.pulldownView = HMPulldownView(frame: CGRectMake(0,0,screenWidth,44) )

        tableView.addSubview(refreshControl)

        refreshControl.addTarget(self, action: "loadMoreData", forControlEvents: .ValueChanged)
        
        //下拉刷新
        tableView.tableFooterView = footRefreshControl
    
    }
    
    //访客视图实现
    func setUpVisitorView(){
        
        self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: .Plain, target: self, action: "didLogin")
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: .Plain, target: self, action: "didLogin")

    
       visitorView = RHVisitorView()
        
        //把访客视图添加到本控制器view中
        view.addSubview(visitorView!)
        
        
        visitorView?.delegate = self
    }
    
}

//刷新的具体方法
extension RHRootTableViewController{

    func loadMoreData(){}
}

// MARK: - tableView的数据源方法
extension RHRootTableViewController: UITableViewDataSource {
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
}
// MARK: - tableView的代理方法
extension RHRootTableViewController: UITableViewDelegate {
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        
    }
    
    //当某一行的cell将要显示的时候，会执行该方法
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        
        //如果是最后一行就执行上拉刷新
//        if indexPath.row == self.dataArray.count - 1{
//        
//            isPullUp = true
//            //加载更多数据
//            loadMoreData()
//            
//        
//        }
    }
}

extension RHRootTableViewController:visitdelegate{

    func didLogin() {
       
        let authVC = RHAuthViewController()
        
        let nav = UINavigationController(rootViewController: authVC)
        
        presentViewController(nav, animated: true, completion: nil )
        
    }
   
}
